/*************************************************************************************
 * Nombre del archivo: Transiciones.java
 * Universidad del Valle de Guatemala
 * Curso: Diseño de Lenguajes de Programación
 * @author martin
 *          Martín Guzmán 08041
 * Fecha: Marzo de 2010
 * Descripción:
*************************************************************************************/
public class Transicion {
    private Estado desde;
    private Character transicion;
    private Estado hacia;

    Transicion(){}


    public Transicion(Estado desde, Character transicion, Estado hacia){
        this.desde = desde;
        this.transicion=transicion;
        this.hacia=hacia;
    }

    /**
     * @return the desde
     */
    public Estado getDesde() {
        return desde;
    }

    /**
     * @param desde the desde to set
     */
    public void setDesde(Estado desde) {
        this.desde = desde;
    }

    /**
     * @return the transicion
     */
    public Character getTransicion() {
        return transicion;
    }

    /**
     * @param transicion the transicion to set
     */
    public void setTransicion(Character transicion) {
        this.transicion = transicion;
    }

    /**
     * @return the hacia
     */
    public Estado getHacia() {
        return hacia;
    }

    /**
     * @param hacia the hacia to set
     */
    public void setHacia(Estado hacia) {
        this.hacia = hacia;
    }

    public String toString(){
        return "T("+this.desde.getNombre()+","+this.transicion+") = "+this.hacia.getNombre();
    }

    public String Sage_String(){
        return "(\'"+this.desde.getNombre()+"\',\'"+this.hacia.getNombre()+"\',\'"+this.transicion+"\')";
    }

    public String DOT_String(){
        //q0 -> q1 [label="a"];
        return (this.desde.getNombre()+" -> "+this.hacia+" [label=\""+this.transicion+"\"];");
    }

}
